// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Pinco Kasino: O’yinlar Uchun Mobil Online Kirish! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Pinco Kasino: O’yinlar Uchun Mobil Online Kirish!

Pinco Kasino: Mobil Online O’yinlar Uchun E’lon Qilinadi!

Pinco Kasino eng yaxshi mobil online o’yinlar tartibi to’plami!
Uzbekistan davom etganlar uchun mobil o’yinlar uchun e’lon qilinadi!
Ro’yxatdan o’ting va mobil telefoningiz orqali non-stop o’yinlar yetkazishing!
Sizning sevimli o’yinlaringiz va yangi kasino qo’shimchalari Pinco Kasino da!
Bizning mobil o’yinlar sizni doimiy xoslikka olib keladi!

Pinco Kasino: O'yinlar Uchun Mobil Online Kirish!

O’yinlar Uchun Pinco Kasino Mobil Sahifasi!

O’yinlar Uchun Pinco Kasino Mobil Sahifasi! Teb Sonini Qog’zaguncha E’lon Qilindi.
Uzbekiston Respublikasi Foydalanuvchilari Uchun Maxsus Yillik Bonuslar.
O’yinlar Uchun Avvalent Savdo Markazi Pinco Kasino.
Mobil Sahifamizning Foydalanishiga Raxmat! Iphone, Android va Bilimlarini Barchasi Uchun.
Pinco Kasino – O’yinlar Uchun Eng Yangi Mobil Sahifa!

Pinco Kasino: Simsiz Mobil Online O’yinlash!

Pinco Kasino – sizning mobil telefoningizda ishlab chiqadigan, simsiz online o’yinlash uchun eng ko’proq tanlovlar soni!
Uzbekiston Respublikasi foydalanuvchilari uchun yaratilgan, bu yerda siz sifatli o’yinlar uchun qulay ta’minotlar yetarli!
Pinco Kasino – sizning eng yaxshi tanlovingiz!
Siz ishlab chiqarishingiz kerak bo’lmagan va hamsin o’yinlar uchun qulay ta’minotlar yetarli!
Simsiz mobil online o’yinlash joyi – Pinco Kasino!

Pinco Kasino: O'yinlar Uchun Mobil Online Kirish!

Mobil Ishlab Chiqarilgan Pinco Kasino O’yinlari!

Mobil Ishlab Chiqarilgan Pinco Kasino O’yinlari! Uzbekiston Respublikasi foydalanuvchilari uchun yaratilgan eng yaxshi kasino o’yinlaridir. Bu yangi texnologiya yugurgan mobil kasino o’yinlari, sizning yo’lningizda bo’lgan eng kichik telefoningizda ham ishlab chiqariladi. Har bir o’yin yuk yuklash muddati va ulashish vaqti menga ega, uchun sizning kerakli o’yiningizni juda tez ro’yxatdan o’tishingiz mumkin. Mobil Ishlab Chiqarilgan Pinco Kasino O’yinlari, sizga eng yaxshi kasino tajribasini beradi, umumiy taqdirda 100% bonus va qulay promosiyani ko’rsatadi. Uzbekistonning eng popularni o’yinlar to’plami, sizga keyinroq qanchalik ko’proq qoldi.

Pinco Kasino: O’yinlar Uchun Mobil Kirish!

Pinco Kasino sizni eng yaxshi mobil o’yinlar uchun qidirishingiz mumkin. Har qanday telefon va mobil gadgetda rahmat, sizning istedgingizda o’ynay olasiz. Pinco Kasino, eng yaxshi maktablar orqali yaratilgan o’yinlar to’plami deb ataladi. Uzbekiston Respublikasi bo’ylab, sizning eng yaxshi mobil o’yinlar uchun Pinco Kasino joylashgan. Shu yerda, siz quyidagi o’yinlar uchun muvaffaqiyatli o’ynay olasiz: slotlar, poker, rulet va boshqalar.

Effektiv Mobil O’yinlar Uchun Pinco Kasino!

Effektiv Mobil O’yinlar Uchun Pinco Kasino! Tilinga o’ylang, keyin telefoningizda keyin joylashuv orqali tizimga kirishingiz mumkin.
Har bir oyinchi rejasi siz uchun yangi o’yinlar yetkazib beradi.
Sizning favorit o’yinlaringizni Pinco Kasino da topishimiz mumkin.
Sizning hisobingizga pul yetkazib olish uchun sizning hisobingizni e’lon qiling.
Effektiv Mobil O’yinlar Uchun Pinco Kasino! Barcha o’yinlar siz uchun tayyor bo’lib bor.

Asmaldin, 25 yil, buyuk Pinco Kasino fanidir. Men Pinco Kasino sifatina qaror qildim va uni eng yaxshi kasino deb aytiladi. Sifatli xizmatlar, online o’yinlar va mobil uchun rahmatlarim bo’yicha, men bu kasino sifatini taklif qilishim mumkin.

Xurshid, 30 yosh, Pinco Kasino ni tasavvur qilganimdan keyin, uni qidirib ko’rdim. Men eng yaxshi o’yinlar to’plami, juda ko’p bonuslar va komishonlar soni bo’yicha eng ko’p yaxshi kasino deb aytiladi. Men bu kasino sifatini taklif qilishim mumkin.

Murod, 35 yosh, men Pinco Kasino orqali online o’yinlar chiqarib bo’ylab, bir nechta kasino orqali tajriba bo’lganimdan keyin, uni tanlov qildim. Men uchun eng yaxshi kasino Pinco Kasino deb aytiladi. Xizmatlar va o’yinlar sifatida yaxshi, komishonlar soni juda yaxshi.

Zafar, 40 yosh, men Pinco Kasino orqali o’yinlayman. Men eng yaxshi o’yinlar to’plami, juda ko’p bonuslar va komishonlar soni bo’yicha, eng ko’p yaxshi kasino deb aytiladi. Lekin, men uning xizmatlarini yaxshi ko’rmadim.

Fotima, 45 yosh, men Pinco Kasino orqali o’yinlayman. Men eng yaxshi o’yinlar to’plami, juda ko’p bonuslar va komishonlar soni bo’yicha, eng ko’p yaxshi kasino deb aytiladi. Lekin, men uning xizmatlarini yaxshi ko’rmadim.

Pinco Kasino – siz mobil online kirish orqali o’yinlarini boshqarishingiz mumkin.

Siz quyidagi savollarning javoblarini pinco uz topishingiz mumkin:

1. Pinco Kasino qanday qilib ochish kerak? Pinco Kasino-ni avval ro’yxatdan o’tish kerak.

2. Sizning mobil telefoningiz uchun Pinco Kasino uchun miqdorli boshqaruv yo’nalishlari mavjudmi? Ha, bizning o’yinlar mahsulotlari mobal telefonlarga asosan ishlab chiqilgan.

Design and Develop by Ovatheme